spinoff 0.5.4

Simple to use Rust library for displaying spinners in the terminal
Documentation

spinoff

simple library for displaying spinners in the terminal

Version Downloads Docs License Actions

πŸ”¨ Install

Add as a dependency to your Cargo.toml:

[dependencies]
spinoff = "0.5.4"

⚑ Usage

use spinoff::{Spinner, Spinners, Color};
use std::thread::sleep;
use std::time::Duration;

let spinner = Spinner::new(Spinners::Dots, "Loading...", Color::Blue); 
sleep(Duration::from_secs(3));
spinner.success("Done!");

Update a spinner

use spinoff::{Spinner, Spinners, Color};
use std::thread::sleep;
use std::time::Duration;

let mut spinner = Spinner::new(Spinners::Aesthetic, "Loading...", Color::Red); 
sleep(Duration::from_secs(3));
spinner.update(Spinners::Dots2, "Retrying...", None);
sleep(Duration::from_secs(3));
spinner.stop()

Stop a spinner and persist a symbol and message

use spinoff::{Spinner, Spinners, Color};
use std::thread::sleep;
use std::time::Duration;

let spinner = Spinner::new(Spinners::Arc, "Loading...", Color::Green);
sleep(Duration::from_secs(3));
spinner.stop_and_persist("πŸ“œ", "Task done.");

Specify an output stream

use spinoff::{Spinner, Spinners, Color, Streams};
use std::thread::sleep;
use std::time::Duration;

let spinner = Spinner::new_with_stream(Spinners::Line, "Loading...", Color::Yellow, Streams::Stderr);
sleep(Duration::from_secs(3));
spinner.stop_and_persist("πŸ“œ", "Task done.");

❗Note for Windows Users

For colors to work properly, you need to add a few extra lines to your code:

use colored::control
control::enable_virtual_terminal(true).unwrap();

Other examples can be found in the documentation.

πŸ“– Documentation

  • All relevant documentation can be found on the Docs.rs page.
  • If you want to see all the available Spinner options, check the Spinners enum.

βš™ Examples

To run some of the included examples, use:

cargo run --example all_spinners
cargo run --example simple

🚧 Contributing

Any contributions to this crate are highly appreciated. If you have any ideas/suggestions/bug fixes, please open an issue or a pull request. If you like the project, star this project on GitHub.

πŸ“‘ License

This crate is licensed under the MIT license.